Proactive Staged Distribution Of Document Activity Indicators

ABSTRACT

To enable prompt presentation of a user interface that displays documents that other users have accessed or edited, distribution of document activity indicators is performed in a proactive manner such that the document activity indicators are already available at a time when such a user interface is to be presented. Document activity triggers the creation of corresponding document activity identifiers, which are distributed to the workspaces of one or more users in accordance with document activity itself, the type of activity, the user performing the activity, a user who initially created the document, or combinations thereof. When another user utilizes a content creation computer application program, the activity by other users is selectively reflected within the user interface presented by such a content creation computer application program.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/585,136, filed on May 2, 2017 and entitled “PROACTIVE STAGEDDISTRIBUTION OF DOCUMENT ACTIVITY INDICATORS”, the entire specificationof which is hereby incorporated by reference.

BACKGROUND

While the ubiquity of worldwide computer communications networks, suchas the Internet, have increased the utilization of computing devices toconsume content offered by someone else, computing devices stillcontinue to be utilized as content creation devices, especially withinthe context of traditional word processing, spreadsheet, presentation,and other like traditional content creation computer applicationprograms. Often, the creation of content through such computerapplication programs is an iterative and extended process, with userscreating, and then subsequently editing, the same document multipletimes, whether in a single day, across multiple days, or even acrossfurther extended periods of time. Consequently, such content creationcomputer application programs often present to the user a user interfacewhich enable the user to quickly select the documents that the user wasmost recently working on.

More recently, content creation computer application programs havefacilitated the storage and accessing of documents from centralizeddocument repositories, typically accessed by multiple computing devicesthrough a computer communication network. Such centralized documentrepositories enable multiple different users to access the same documentfor purposes of collaborative content creation and editing, and furtherenable those multiple different users to more easily share documents andcontent. However, the user interface presented by content creationcomputer application programs remains focused on the documents that weremost recently accessed by the single user to whom that user interface isbeing presented. Furthermore, such user interfaces are expected to bepresented in a prompt and lag-free manner in order to maintain anacceptable user experience. Consequently, a user interface thatautomatically presents a user with, not only the documents that thatspecific user most recently accessed, but the documents which have beenaccessed by, or edited by, other users with whom such a user isaffiliated, can be desirable so long as such a user interface can bepresented in a sufficiently prompt manner to maintain acceptable userexperience.

SUMMARY

To enable prompt presentation of a user interface that displaysdocuments that other users have accessed or edited, distribution ofdocument activity indicators can be performed in a proactive manner suchthat the document activity indicators are already available at a timewhen such a user interface is to be presented, thereby avoiding both thedelay in polling for such information at the time that the userinterface is to be presented, and the corresponding increase inprocessing and communication effort necessitated by such polling.Document activity triggers the creation of corresponding documentactivity identifiers, which can be distributed to the workspaces of oneor more users in accordance with document activity itself, the type ofactivity, the user performing the activity, a user who initially createdthe document, or combinations thereof. When another user utilizes acontent creation computer application program, the activity by otherusers can be reflected within the user interface presented by such acontent creation computer application program. The content creationcomputer application program can retrieve the document activityindicators from its user's workspace, since such document activityindicators can already be waiting there, thereby avoiding the need topoll such information, as well as avoiding the delay associatedtherewith.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Additional features and advantages will be made apparent from thefollowing detailed description that proceeds with reference to theaccompanying drawings.

DESCRIPTION OF THE DRAWINGS

The following detailed description may be best understood when taken inconjunction with the accompanying drawings, of which:

FIG. 1 is a system diagram of an exemplary system illustratingutilization of the proactive distribution of document activityindicators;

FIG. 2 is a system diagram of an exemplary system illustrating an aspectof the proactive distribution of document activity indicators;

FIG. 3 is a system diagram of an exemplary system illustrating anotheraspect of the proactive distribution of document activity indicators;

FIG. 4 is a system diagram of an exemplary system illustrating yetanother aspect of the proactive distribution of document activityindicators;

FIG. 5 is a system diagram of an exemplary system illustrating a furtheraspect of the proactive distribution of document activity indicators;

FIG. 6 is a system diagram of an exemplary system illustrating a stillfurther aspect of the proactive distribution of document activityindicators

FIG. 7 is a flow diagram of an exemplary series of steps by which theproactive distribution of document activity indicators can be performed;

FIG. 8 is a flow diagram of an exemplary series of steps by which theproactive staged distribution of document activity indicators based onsocial connections can be performed; and

FIG. 9 is a block diagram of an exemplary computing device forimplementing and/or utilizing proactive distribution of documentactivity indicators.

DETAILED DESCRIPTION

The following description relates to the proactive distribution ofdocument activity indicators to multiple user workspaces, including in aproactive manner. To enable prompt presentation of a user interface thatdisplays documents that other users have accessed or edited,distribution of document activity indicators can be performed in aproactive manner such that the document activity indicators are alreadyavailable at a time when such a user interface is to be presented,thereby avoiding both the delay in polling for such information at thetime that the user interface is to be presented, and the correspondingincrease in processing and communication effort necessitated by suchpolling. Document activity triggers the creation of correspondingdocument activity identifiers, which can be distributed to theworkspaces of one or more users in accordance with document activityitself, the type of activity, the user performing the activity, a userwho initially created the document, or combinations thereof. Whenanother user utilizes a content creation computer application program,the activity by other users can be reflected within the user interfacepresented by such a content creation computer application program. Thecontent creation computer application program can retrieve the documentactivity indicators from its user's workspace, since such documentactivity indicators can already be waiting there, thereby avoiding theneed to poll such information, as well as avoiding the delay associatedtherewith. In such a manner, content creation computer applicationprograms can present user interfaces that enable users to see whichdocuments their colleagues, friends, family members, or other likecollaborators have acted upon recently.

The techniques described herein make reference to a user “workspace”. Asutilized herein, the term “workspace” means a defined storage locationthat is unique to the user, or set of users, with which it iscorrelated. Thus, for example, one example of a user “workspace” as thatterm is utilized herein, is an email mailbox as stored on one or moreserver computing devices. Another example of a user workspace can be auser folder or account, such as on a file sharing server. Additionally,while the techniques described herein are described with reference to“documents” they are not limited to specific file structures withinwhich content can be stored, and, thus, they are equally applicable toless strictly defined file structures.

Although not required, the description below will be in the generalcontext of computer-executable instructions, such as program modules,being executed by a computing device. More specifically, the descriptionwill reference acts and symbolic representations of operations that areperformed by one or more computing devices or peripherals, unlessindicated otherwise. As such, it will be understood that such acts andoperations, which are at times referred to as being computer-executed,include the manipulation by a processing unit of electrical signalsrepresenting data in a structured form. This manipulation transforms thedata or maintains it at locations in memory, which reconfigures orotherwise alters the operation of the computing device or peripherals ina manner well understood by those skilled in the art. The datastructures where data is maintained are physical locations that haveparticular properties defined by the format of the data.

Generally, program modules include routines, programs, objects,components, data structures, and the like that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that the computing devices need not be limitedto conventional personal computers, and include other computingconfigurations, including hand-held devices, multi-processor systems,microprocessor based or programmable consumer electronics, network PCs,minicomputers, mainframe computers, and the like. Similarly, thecomputing devices need not be limited to stand-alone computing devices,as the mechanisms may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

With reference to FIG. 1, an exemplary system 100 is illustrated,providing context for the descriptions below. The exemplary system 100can include, but is not limited to, one or more user-controlledcomputing devices, such as the exemplary personal computing devices 114,115 and 116, illustrated as being utilized by users 111, 112 and 113,respectively. The user controlled computing devices, such as theexemplary personal computing devices 114, 115 116, can becommunicationally coupled to one another, and to one or more servercomputing devices, such as the exemplary document server computingdevice 120, via a network, such as the exemplary network 110.Consequently, computer application programs executing on the exemplarypersonal computing devices 114, 115 and 116 can have access to data thatis shared among some or all of the users 111, 112 and 113 through thecommunicational connection to the exemplary document server 120. Forexample, the exemplary document server 120 can be communicationallycoupled to a document store, such as exemplary document store 130, onwhich can be stored multiple documents, such as the exemplary documents131, 132 and 133. One or more of the exemplary users 111, 112 and 113can collaboratively interact with the documents stored by the exemplarydocument store 130, such as through content creation computerapplication programs that can execute on each of the exemplary personalcomputing devices 114, 115 and 116. For example, the exemplary system100 of FIG. 1 illustrates an exemplary word processing computerapplication 119 being executed by the user 111 on the personal computingdevice 114. FIG. 1, likewise, illustrates the exemplary word processingcomputer applications 119 and 119 being executed by the users 111 and112 on the personal computing devices 115 and 116, respectively.

Traditionally, user interfaces presented by content creation computerapplication programs, such as the exemplary word processing computerapplication programs 119, 119 and 119, include indicators of documentsrecently accessed by the user to whom the user interface is beingpresented. Thus, for example, if the exemplary user 111 had lastutilized the word processing application 119 to create or edit thedocument 131, the next time be the exemplary user 111 executes the wordprocessing application 119, the word processing application 119 candisplay user interface, such as the exemplary user interface 121, whichcan enumerate the document 131, thereby enabling the user 111 to quicklyreopen such a document and return to editing it. For example, theexemplary user interface 121 can be an “open” user interface, such aswould be presented by an application program, such as the exemplary wordprocessing application program 119, when a user invoked an “open”command in order to select a document to be opened by the applicationprogram, such as for viewing or editing. As another example, theexemplary user interface 121 can be a “welcome” user interface, such aswould be presented of an application program, such as the exemplary wordprocessing application program 119, when a user first executed, orinstantiated, such an application program. As will be recognized bythose skilled in the art, such “open” or “welcome” user interfaces oftenpresent the user, not only with a graphical user interface through whichthe user can browse a file hierarchy to select a document, but such userinterfaces also often present the user with that user's most recentdocuments, since users often return to the same documents that they weremost recently viewing or editing. Thus, the presentation of such mostrecent documents improves the user's efficiency in that the user is ableto select, with a minimum of effort, such most recent documents.

However, as indicated previously, such most recent documents includeonly the documents that that user most recently opened or edited. Thus,for example, within the exemplary system 100 of FIG. 1, traditionally,the user interface 121, presented by the word processing application 119to the user 111 would include only those documents, including documentsfrom the document store 130, that the user 111 previously opened oredited. Traditionally, the exemplary user interface 121 would notinclude documents that were opened or edited by other users, such as theexemplary users 112 and 113, merely by virtue of their access by thoseother users. Such a myopic view can result in user inefficiency incollaborative environments. For example, the exemplary user 111 can beworking with one or more of the exemplary users 112 and 113 to, forexample, collaboratively edit the document 131. Upon completing theiredits to the exemplary document 131, the exemplary user 111 can proceedto create, open, edit, or otherwise access other documents, such as theexemplary documents 132 and 133. In the meantime, editing activity onthe exemplary document 131 can continue with edits being made by theexemplary users 111 and 112. In such an instance, the exemplary user 111can be unaware of such activity, since the “open” and/or “welcome” userinterfaces presented by, for example, the exemplary word processingapplication 119 can only show the documents 132 and 133, since they weremore recently accessed by the exemplary user 111, even though thedocument 131 can be the most recently edited document, but for the factthat the edits to the exemplary document 131 can have been made by usersother than the exemplary user 111, such as the exemplary users 112 or113.

One mechanism for generating a user interface, such as the exemplaryuser interface 121, by a content creation computer application programcan be to have the application program poll a server, such as theexemplary document server 120, in order to identify all of thedocuments, such as within the exemplary document store 130, that havehad activity directed to them by at least one of the other users, suchas the exemplary users 112 113, or some defined subset thereof. Suchpolling, however, is far too slow. For example, a user seeking to open adocument, with the word processing application program 119, will finddelay in presenting the user interface which a user could select andopen such a document to be unacceptable, because the potentialefficiency to be gained from having documents proactively presented tothe user as part of such an “open” interface may not be sufficientlybeneficial to justify experiencing such a delay each time the userattempts to open a document. As another example, the user initiating anapplication program, such as the exemplary word processing applicationprogram 119, will perceive any delay in presenting a “welcome” interfaceto be a product of poor performance in the part of the applicationinstantiation process, which can disincentivize the user from utilizingsuch an application program.

Consequently, according to one aspect, information sufficient tofacilitate the presentation of a user interface, such as the exemplaryuser interface 121, that can proactively presented to users, not onlydocuments that that specific user previously accessed, but alsodocuments that have had activity directed to them by other users, suchinformation can be already available, such as in a user workspace, and,consequently, can be quickly obtained and utilized to generate acorresponding user interface. For example, the exemplary system 100,shown in FIG. 1, illustrates a workspace store 140 which can becommunicationally coupled to the exemplary network 110, such as throughthe exemplary document server 120, or other server computing devices.The exemplary workspace store 140 can comprise multiple workspacescorresponding to a user, or defined groups of users. For purposes ofillustration, the exemplary workspace 141 can correspond to theexemplary user 111. Similarly, the exemplary workspace 142 cancorrespond to the exemplary user 112 and the exemplary workspace 143 cancorrespond to the user 113. According to one aspect, the workspaces,such as the exemplary workspaces 141, 142 and 143 can be emailmailboxes, such as can be part of an email, calendaring, or other likepersonal information management server application program. Thus, insuch an aspect, the exemplary workspace store 140 can be a database ofmailboxes, such as would be maintained by a server email applicationprogram. Additionally, in such an aspect, the exemplary workspace store140 can be communicationally coupled to one or more different servercomputing devices than the exemplary document server computing device120. For example, the exemplary workplace store 140, in such an aspect,could be communicationally coupled to one or more email server computingdevices, or other like server computing devices that are independent ofthe document server computing device 120.

For purposes of the mechanisms described herein, among otherinformation, each workspace can have stored therein activity indicatorsthat can indicate a specific activity, or set of activities, performedon a document by users. Thus, the exemplary system 100 of FIG. 1 showsthe exemplary user workspace 141 as comprising two different activityindicators namely the exemplary activity indicators 151 and 152. Anapplication program being executed by a user corresponding to the userworkspace 141, such as the exemplary user 111, can retrieve the activityindicators, such as the exemplary activity indicators 151 and 152, fromthe exemplary user workspace 141, and can utilize the informationcontained within the activity indicators to generate a user interface,such as the exemplary user interface 121, that can comprise not onlydocuments recently accessed by the user 111, but also documents accessedby other users, such as the exemplary users 112 and 113. For example, ifthe exemplary activity indicator 151 is indicative of editing activityon the document 132 by the user 112, such as by using the wordprocessing application program 119 on their personal computing device115, the word processing application 119 can obtain such an activityindicator 151 from the exemplary workspace 141 and, based on theinformation contained therein, determine that a link to the document132, either by itself or with other information about the document 132can be presented as part of the exemplary user interface 121. Thus, theuser 111 can be presented with an exemplary user interface 121 thatcomprises not only documents that the user 111 previously edited, suchas the exemplary document 131, but can also comprise documents thatother users, such as the exemplary user 112, also recently interactedwith, such as the exemplary document 132.

Turning to FIG. 2, the exemplary system 200 shown therein illustrates anexemplary mechanism for populating user workspaces, such as theexemplary workspaces 141, 142 and 143. Within the exemplary system 200,the user 113 is illustrated as utilizing the word processing applicationprogram 119, on their personal computing device, namely the exemplarypersonal computing device 116, to open the document 131, as illustratedby the open action 210. For purposes of illustrating an exemplarymechanism for populating user workspaces with document activityindicators, within the example illustrated in FIG. 2, the document 131can have been initially created by the user 111, and it can have beensubsequently edited by the user 112, either by themselves, or incombination with edits from the user 111 as well. According to oneaspect, the open document action 210, performed by the user 113 on thedocument 131, can be detected by the exemplary document server 120, suchas when the exemplary document server 120 received the request from theword processing application 119, executing on the exemplary personalcomputing device 116, for the document 131.

Upon detecting the open document action 210, according to one aspect,activity indicators indicative of the open of the document 131 by theuser 113 can be generated and provided to the workspaces of the useropening the document and the user who initially created the document,which can be thought of as a “master user”. More specifically, accordingto one aspect, at least one user can have their workspace act as adefinitive repository of document activity indicators of all of theactivity corresponding to a particular document. Such a user can betermed a “master user” for that particular document, and that usersworkspace can termed a “master user workspace”. According to one aspect,such a “master user” can be the user who initially created the document.According to another aspect, a “master user” can be explicitlyestablished by one or more users, such as through user interfacespresented, either by content creation computer application programsthemselves, or by document sharing utilities, collaboration facilitationutilities, or other like computer application programs.

Returning back to the exemplary system 200 of FIG. 2, based on theexemplary parameters defined above, where the document 131 can have beeninitially created by the user 111, the user 111 can be a “master user”.Accordingly, document activity indicators indicative of the open action210 can be distributed to user workspaces based on the type of action,namely the fact that it was a document open action, based on the userwho initially created the document, namely the exemplary user 111, andbased on the user who opened the document, triggering the generation ofthe document activity indicator indicative of the open action, namelythe exemplary user 113. According to one aspect, document actions thatare of the document open type can trigger the distribution ofcorresponding document activity indicators to the master user and to theuser opening the document. Consequently, within the exemplary system 200of FIG. 2, document activity indicators indicative of the open action210 are illustrated as being distributed to the user workspace 141,corresponding to the user 111, as illustrated by the communication 211,as well as to the user workspace 143, corresponding to the user 113, asillustrated by the communication 212.

Because the workspaces to which document activity indicators aredistributed can be based on the type of document activity, other typesof document activity can result in different types of distributions ofthe corresponding document activity indicators. For example, turning toFIG. 3, the exemplary system 300 shown therein illustrates the exemplaryuser 113 performing an edit action 310 on the exemplary document 131.Such an edit action 310 can be performed subsequent to theaforedescribed open action 210, in which case document activityindicators distributed in the manner illustrated of the exemplary system300 of FIG. 3, and described herein, can be in addition to the documentactivity indicators indicative of the aforedescribed open action 210,whose distribution was detailed above.

According to one aspect, document activity indicators indicative of editactivity on a document can be distributed to all of the users who havepreviously edited that same document. Within the example illustrated bythe system 300 of FIG. 3, the document 131 being edited by the user 113,as illustrated by the edit action 310, can have been initially createdby the user 111, and can have been subsequently edited by the user 112.Consequently, the document activity indicator, that is indicative of theedit action 310, can be distributed to: (1) the workspace of the userperforming the edit action 310, namely the workspace 143 correspondingto the user 113, (2) the workspace of the user who initially authoredthe document, namely the workspace 141 corresponding to the user 111,and (3) the workspaces of the users who have previously edited thedocument 131, such as, within the illustrated example, workspace 142corresponding to the user 112. Such distribution of document activityindicators is illustrated by the arrows 313, 311 and 312, respectively.

According to other aspects, document activity indicators indicative ofedit activity on a document can be distributed according to modifieddistribution criteria to that enumerated above. For example, rather thandistributing document activity indicators to all of the users withpreviously edited that same document, the document activity indicatorscan be distributed to all of the users who previously edited that samedocument within a predetermined amount of time. For example, users whohave edited the document within the last day, week, month, or any otherlike predetermined time interval can receive document activityindicators indicative of edit activity on that document, while otherusers who have edited the document outside of that predetermined timeinterval need not receive the document activity indicators indicative ofedit activity on that document.

As another example, document activity indicators indicative of editactivity can be distributed to all of the users who previously openedthat same document, irrespective of whether such users actuallyperformed any edits on the document content itself, or its metadata. Asbefore, such a pool of users can be reduced based on predetermined timeintervals. Thus, for example, document activity indicators indicative ofedit activity can be distributed to all of the users who previouslyopened that same document within the last day, week, month, or any otherlike predetermined time interval. Additionally, the predetermined timeintervals can be separately established for users who have edited thedocument versus users who have merely opened the document to consume thecontent therein, without performing any edits, or who were prohibitedfrom editing the document. For example, document activity indicatorsindicative of edit activity can be distributed to all of the userspreviously edited that same document within the last month, and canfurther be distributed to all of the users who previously opened thatsame document within the last week. Other predetermined time intervalscan equally be utilized, with the time intervals for those users whohave edited the document being set independently of the time intervalsfor those users who have only opened the document. Additionally,de-duplication processing can be utilized to avoid sending multipledocument activity indicators indicative of the same edit activity to asame workspace, such as one document activity indicator indicative ofedit activity being sent to a user's workspace because that userpreviously opened the document, and another, separate document activityindicator, indicative of that same edit activity, being sent to thatsame user's workspace because that user, in addition to previouslyopening the document, also edited the document while they had it open.Alternatively, such de-duplication need not be performed and multipledocument activity indicators, even indicating the same activity, cansimply remain in a user's workspace until obtained, such as by thecontent creation application program, which can then filter, orotherwise process such document activity indicators for purposes ofgenerating a user interface, such as the “open” or “welcome” userinterfaces detailed above.

As indicated previously, the workspaces to which document activityindicators are distributed can be based on the type of documentactivity. Another type of document activity can be the utilization ofcommenting functionality, or other analogous functionality, oftenprovided by content creation computer application programs. According toone aspect, a user providing comments within a document, such as throughsuch commenting functionality, can be treated in a manner analogous tothat detailed above with respect to any other form of document contentediting. Thus, for example, in the exemplary system 400 shown in FIG. 4,the comment action 410, performed by the user 113 on the document 131,can result in document activity indicators being distributed to theworkspace 143, corresponding to the user 113 performing theediting/commenting, the workspace 141, corresponding to the user 111,who, in the current example, originally authored the document 131 inwhich the user 113 performed the comment action 410, and the workspace142, corresponding to the user 112, who, in the current example, is auser who previously opened or edited the document such that, inaccordance with preestablished criteria, they would be provided with adocument activity indicator. The provision of such document activityindicators, indicative of the comment action 410, are illustrated by thearrows 413, 411 and 412, respectively, in the exemplary system 400 ofFIG. 4.

According to one aspect, if a comment is not a general comment, butrather is a comment specifically directed to a particular individualuser, or defined group of users, then, according to such an aspect, anadditional document activity indicator can be generated and provided tothe workspaces of those users to whom such comments are specificallydirected. For example, the commenting functionality of certain contentcreation computer application programs can include the ability toprogrammatically reply to a prior comment made by another user. Asanother example certain content creation computer application programscan include the ability to programmatically direct comments or otheredits specifically to individual users, or defined groups of users. Theability to programmatically direct feedback to specific users issometimes triggered by the utilization of a specific symbol or keyword,such as the “@” symbol. Consequently, in some content creation computerapplication programs, the ability to programmatically direct feedback tospecific users is referred to as “@mention”, or other like terminology.

Turning back to the exemplary system 400 shown in FIG. 4, the commentingaction 410 is shown as comprising a comment-reply action 420 in whichone of the comments made by the commenting action 410 is a reply to aspecific user's prior comment. As illustrated by the exemplary system400, such a comment reply action 420 can result in a separate documentactivity indicator, indicative of the targeted nature of thecomment-reply action 420, to be distributed to the workspaces of theusers identified by the comment-reply and to whom such a comment-replyaction was directed. In the illustrated example, the exemplarycomment-reply action 420 can have been a comment-reply to a commentpreviously made by the user 112. Accordingly, as illustrated by thearrow 421, the document activity indicator indicative of the commentreply action 420 can be provided to the workspace 142 corresponding tothe user 112. Additionally, as illustrated by the arrows 412 and 421,the workspace 142 can receive both a document activity indicatorindicative of the comment action 410, as well as a separate documentactivity indicator indicative of the comment-reply action 420.

Such multiple, separate document activity indicators can be utilized bycontent creation computer application programs to provide richer or moreexpressive user interfaces. For example, the word processing application119, executing on the personal computing device 115, can retrieve boththe document activity indicator indicative of the comment action 410 andthe separate document activity indicator indicative of the commentreply-action 420, from the workspace 142 corresponding to the user 112.The word processing application 119 can then generate a user interfacethat proactively presents representation of the document 131 such thatthe user can quickly select the document 131 to be opened, for example.Such a proactive presentation of a representation of the document 131can be based on the document activity indicator indicative of thecomment action 410. Additionally, the word processing application 119can generate, based on the document activity indicator indicative of thecomment-reply action 420, a user interface that further comprises anindication that the user 112 has received a reply to a prior commentmade by such a user. Such an indication can be visually distinct fromthe proactive presentation of the representation of the document 131. Insuch a manner, as one example, different document activity indicators,even of related activities on a same document, can be utilized, such asto generate distinct user interface aspects or elements.

The programmatic directed feedback option, such as the aforementioned“@mention” functionality, provided by some content creation computerapplication programs can result in the generation and distribution ofdocument activity indicators analogous to that described above withrespect to the comment-reply action 420. More specifically, a directedfeedback action can result in document activity indicators beinggenerated specifically for the user at whom such a directed feedback istargeted. Additionally, a directed feedback action can also result indocument activity indicators, including separate, distinct documentactivity indicators, being generated that are merely generallyindicative of the existence of an edit in the form of a directedfeedback, which can be delivered to multiple users' workspaces,including the workspace of the user who authored the document, theworkspace of the user generating the directed feedback, and theworkspaces of users who have opened or edited the document during aprior time.

In addition to activity directed to the content of the document, such asthat detailed above, document activity indicators can also be generatedand distributed for activity directed to the metadata of the document,such as changes to the document name, changes to its file structure ortype, and changes to the access permissions of such a document. Forexample, and turning to FIG. 5, the exemplary system 500 shown thereinillustrates a user, such as the exemplary user 113, performing a shareor de-authorize action 510 to either explicitly share the document 131with another user, such as the exemplary user 112, who did notpreviously have access rights to such a document, or, alternatively,revoke that user's access rights to the document. According to oneaspect, such a change in the access rights to the document can triggerthe distribution of a corresponding document activity indicator to boththe user whose access rights changed, as well as to the original authorof the document. Thus, for example, if the exemplary user 113 explicitlyshared the document 131 with the user 112, a document activity indicatorindicative of such a sharing of the document to the user 112 can begenerated and distributed to the workspace of the user 111, who, in thepresent example, can be the author of the document 131, as illustratedby the arrow 511. Additionally, a document activity indicator indicativethat the document 131 was explicitly shared with the user 112 can begenerated in distributed to the workspace of that user, namely theworkspace 142, as illustrated by the arrow 512. According to otheraspects, the user performing the sharing can also receive a documentactivity indicator, users who have previously been granted access, whohave previously opened the document, who previously edited the document,or combinations thereof can also receive document activity indicatorsindicative of a sharing of the document with a new user.

In a similar manner, document activity indicators indicative of anexplicit de-authorization can, likewise, be generated and distributed tothe user whose access rights have been revoked and the original authorof the document. Thus, for example, if the action 510 was a de-authorizeaction by which the exemplary user 113 removed the access rights of theexemplary user 112 and prevented the user 112 from further accessing thedocument 131, a document activity indicator corresponding to such ade-authorization action 510 can be generated and provided to theworkspace 141, corresponding to the user 111, who, in the presentexample, is the author of the document, as well as to the workspace 142,corresponding to the user 112, who, in the present example, as had theiraccess rights revoked by the de-authorization action 510. As before,according to other aspects, document activity indicators indicative ofsuch a de-authorization can be provided to other users' workspaces, suchas users who have previously been granted access, who have previouslyopened the document, have previously edited the document, the userperforming the de-authorization, or combinations thereof.

According to one aspect, the users whose workspaces have documentactivity indicators distributed to them can include users who areselected based on their social relationship with the user performing thedocument activity, the original author of the document, or combinationsthereof. Furthermore, the use of predefined social relationships toidentify users to whose workspaces document activity indicators will bedistributed can be performed in a staged, or iterative, process whereinthe users to whose workspaces such document activity indicators aredistributed can be selected based on their social relationships to usersto whom such document activity indicators were distributed in a prioriteration. More specifically, a social graph can be constructed andmaintained that can quantify, or otherwise delineate, relationshipsamong multiple different users. The relationships delineated by such asocial graph can include explicitly defined relationships, such as therelationships among users that have been placed within a single group,alias, or other like single reference within the context of digitalcommunications. As another example of explicitly defined relationships,the relationships delineated by such a social graph can includemanagerial, organizational chart relationships, such as which usersreport to which managing users, each can be common in businessenvironments. The relationships delineated by such a social graph canalso include implicitly defined relationships, such as relationshipsidentified by the actions of one or more users. For example, repeatedinstances of one user sharing documents with another user can result ina relationship being delineated between the two users by the socialgraph. As another example, repeated email communications between twousers can result in a relationship being delineated between them by thesocial graph. As yet another example, users that are invited to the samemeetings or events, such as through a shared calendaring service, canhave a relationship delineated between them, based on such commonmeetings or events, by the social graph. The precise manner in whichrelationships between users are delineated in the social graph, and theprecise manner in which the strength of those relationships isquantified, can be immaterial to the mechanisms described herein, sincesuch a social graph is only utilized to identify other users, nototherwise identified, such as by the mechanisms detailed above, to whomdocument activity indicators can be distributed.

By way of a specific example, turning to FIG. 6, the exemplary system600 shown therein illustrates an exemplary redistribution of documentactivity indicators in a staged manner to account for social connectionsamong users. More specifically, the exemplary system 600 shows adocument activity 610 being performed by the user 113 on the document131. The document activity 610 can be any of the above describeddocument activities, and can trigger, such as in accordance with themechanisms detailed above, the distribution of document activityindicators to, for example, the workspace 141 and the workspace 143, asillustrated by the arrows 611 and 612. According to one aspect, after adocument activity indicator is received at a workspace, a furtherevaluation can be performed to determine whether such a documentactivity indicator is to be further redistributed, such as in accordancewith a social graph. Such a further evaluation can be performed byprocesses executing on one or more server computing devices, such as,for example, the exemplary document server computing device 120, byprocesses executing on individual ones of the personal computing devicessuch as, for example, processes executing on the exemplary personalcomputing device 114, which can access the workspace 141 correspondingto the user 111 that is utilizing the personal computing device 114, orcombinations thereof.

The further evaluation can take into account users with whom the user111, corresponding to the workspace 141, is socially connected, such asin the aforementioned social graph. Depending on the manner in which thesocial graph information is retained, the strength of relationship canbe quantified, such that users having greater than a threshold strengthof relationship can be identified to receive a further distribution ofdocument activity indicators. Alternatively, or in addition, usershaving defined types of social relationships, such as a coworkerrelationship, a managerial relationship, a familial relationship, orother types of defined relationships can be identified to receive afurther distribution of document activity indicators. In the exampleillustrated by the system 600 of FIG. 6, the user 112 can have beenidentified by the aforementioned processing as being connected to theuser 111 the a social graph. For example, the user 112 can be a teammember of the user 111, such that document activity indicators providedto the user 111 may potentially also be relevant to the user 112, eventhough the user 112 may not have previously opened or edited thedocument, such as the exemplary document 131, to which the activitytriggering the document activity indicators was directed. In such aninstance, the document activity indicator provided to the exemplaryworkspace 141, such as illustrated by the arrow 611 in FIG. 6 can befurther redistributed to the exemplary workspace 142, corresponding tothe user 112, as illustrated by the arrow 613.

According to one aspect, various information from the document activityindicator, or even from the document itself, can be referenced todetermine users who are connected via a social graph to the user whoseworkspace received the document activity indicator, and to whom thedocument activity indicator is to be redistributed. For example,documents conforming to certain naming conventions, such as the use ofcertain keywords, numerical identifiers, or other like namingconventions, can have document activity indicators corresponding toactivity on such documents be distributed to a set of coworkers.Consequently, the receipt, such as is exemplified by the arrow 611, of adocument activity indicator indicating activity on a document havingsuch a naming structure can result in the identification of other usersthat are part of a team, group, or other like collection of users, asidentified in a social graph, such that the receipt of a documentactivity indicator to one of those users, such as, for example, the user111, can trigger the redistribution of that document activity indicatorto other users of that team, group, or other like collection of users,such as is exemplified by the arrow 613.

Turning to FIG. 7, the flow diagram 700 shown therein illustrates anexemplary series of steps by which the proactive distribution ofdocument activity indicators can be performed in accordance with thetype of activity such document activity indicators are indicative ofMore specifically, after an activity on a document is detected at step710, processing can proceed to identify the type of document activity.For example, at step 715 a determination can be made as to whether suchdocument activity is an open activity, and, if it is, a furtherdetermination can be made at step 725 as to whether such an opening ofthe document has also resulted in editing of the document, or, at step735, a determination can be made as to whether such activity is acomment activity. While steps 715, 725, 735, 745 and 755 are shown asbeing performed in series, they can equally be performed in parallel, orthrough a single step that identifies an activity on a document as beingone of a specific type.

Within the exemplary flow diagram 700 shown in FIG. 7, however, aninitial determination can be made as to whether the activity performedin the document is an open activity, as illustrated by step 715. If, atstep 715, it is determined that the document activity is not an openactivity, then the activity may be of a sort for which a documentactivity indicator is not generated such as, for example, the moving ofa document to a different storage location or the like, and, at step765, the relevant processing can end. If, at step 715, however, it isdetermined that the document activity is a document open activity,processing can proceed to step 720 and activity indicators indicative ofsuch open activity can be generated and distributed to the workspacecorresponding to the author of the document, and to the workspacecorresponding to the user acting on the document. Processing can thenfurther proceed to step 725, at which point a further determination canbe made as to whether the open activity of step 715 is also an editactivity. If, at step 725, it is determined that an edit was notperformed, further processing can consider whether the activity was acomment activity, such as at step 735. Conversely, if, at step 725, itis determined that an edit activity was performed, processing canproceed to step 730 and activity indicators indicative of the editactivity can be distributed to the workspaces of the author, the userperforming the activity, and authorized users who previously opened oredited the document, such as in the manner detailed above. As alsoindicated above, the activity indicators being distributed at step 730can be in addition to the activity indicators of step 720, or they canbe an alternative thereto.

At step 735, if the activity is not a comment activity, processing canproceed to step 755 to determine whether the activity is a programmaticresponse or targeted feedback, such as an “@mention”. Conversely, if, atstep 735, the activity is a comment activity, activity indicators can bedistributed, at step 740, to the workspaces of the author, the userperforming the comment activity, and authorized users previously openedor edited the document, again, as detailed previously. At step 745 afurther determination can be made as to whether the comment activity ofstep 735 includes a targeted reply to a specific comment by a particularuser, in which case processing can proceed to step 750 and additionalactivity indicators can be distributed to the workspace of the user towhom such replies directed. At step 755, if it is determined that theactivity is an “@mention”, or the like, activity indicators can bedistributed to the workspaces of the author, the user performing such an“@mention”, other authorized users who have previously opened or editedthe document, with additional separate activity indicators beinggenerated and provided to the workspace of the user who was“@mentioned”. The relevant processing can then end at step 765.

Turning to FIG. 8, the exemplary flow diagram 800 shown thereinillustrates a further series of steps that can be performed when adocument activity indicator is received to proactively distribute suchdocument activity indicators in a staged manner. More specifically, atstep 810, a document activity indicator can be received. As indicatedpreviously, the steps of the exemplary flow diagram 800 can be performedwith processes executing on server computing devices, such as servercomputing devices having access to the user workspaces into which suchdocument activity indicators would be distributed and received thereby.As also indicated previously, however, the steps of the exemplary flowdiagram 800 can be performed with processes executing on remote, usercomputing devices, such as a user computing device on which is executinga content creation computer application program that can occasionallyaccess a workspace corresponding to the user utilizing such a usercomputing device. After the document activity indicator has beenreceived, such as at step 810, processing can proceed to step 820,wherein a determination can be made as to whether the received documentactivity indicator should be distributed further, such as via a socialgraph by which the user, in whose workspace the document activityindicator was received at step 810, is socially connected to otherusers, such as in the manner detailed above. If, at step 820, it isdetermined that further distribution of the document activity indicatorreceived at step 810 should not be undertaken, then the relevantprocessing can end at step 850.

Conversely, if, at step 820, further distribution via the social graphis determined to be undertaken, then processing to proceed to step 830,at which other users, to whom the user in whose work space the documentactivity indicator was received at step 810, can be identified withreference to a social graph. As indicated previously, and identificationof other users to whom to further distribute the document activityindicator received at step 810 can be undertaken based on a strength ofrelationship, a type of relationship, or other like relationship factorsas quantified by the social graph. Additionally, as also indicatedpreviously, the determination, at step 830, can be informed based uponinformation from the document activity indicator, such as a name of thedocument, its location within a shared folder, or other likeinformation, as well as information from the document itself. Once theusers identified at step 830 have been determined, the document activityindicator received at step 810 be further distributed to such users atstep 840. The relevant processing can then end at step 850.

Turning to FIG. 9, an exemplary computing device 900 is illustratedwhich can perform some or all of the mechanisms and actions describedabove. The exemplary computing device 900 can include, but is notlimited to, one or more central processing units (CPUs) 920, a systemmemory 930, and a system bus 921 that couples various system componentsincluding the system memory to the processing unit 920. The system bus921 may be any of several types of bus structures including a memory busor memory controller, a peripheral bus, and a local bus using any of avariety of bus architectures. The computing device 900 can optionallyinclude graphics hardware, including, but not limited to, a graphicshardware interface 950 and a display device 951, which can includedisplay devices capable of receiving touch-based user input, such as atouch-sensitive, or multi-touch capable, display device. Depending onthe specific physical implementation, one or more of the CPUs 920, thesystem memory 930 and other components of the computing device 900 canbe physically co-located, such as on a single chip. In such a case, someor all of the system bus 921 can be nothing more than silicon pathwayswithin a single chip structure and its illustration in FIG. 9 can benothing more than notational convenience for the purpose ofillustration.

The computing device 900 also typically includes computer readablemedia, which can include any available media that can be accessed bycomputing device 900 and includes both volatile and nonvolatile mediaand removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes mediaimplemented in any method or technology for storage of content such ascomputer readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired content andwhich can be accessed by the computing device 900. Computer storagemedia, however, does not include communication media. Communicationmedia typically embodies computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anycontent delivery media. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of the any of the aboveshould also be included within the scope of computer readable media.

The system memory 930 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 931and random access memory (RAM) 932. A basic input/output system 933(BIOS), containing the basic routines that help to transfer contentbetween elements within computing device 900, such as during start-up,is typically stored in ROM 931. RAM 932 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 920. By way of example, and notlimitation, FIG. 9 illustrates operating system 934, other programmodules 935, and program data 936.

The computing device 900 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 9 illustrates a hard disk drive 941 that reads from or writes tonon-removable, nonvolatile magnetic media. Otherremovable/non-removable, volatile/nonvolatile computer storage mediathat can be used with the exemplary computing device include, but arenot limited to, magnetic tape cassettes, flash memory cards, digitalversatile disks, digital video tape, solid state RAM, solid state ROM,and other computer storage media as defined and delineated above. Thehard disk drive 941 is typically connected to the system bus 921 througha non-volatile memory interface such as interface 940.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 9, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputing device 900. In FIG. 9, for example, hard disk drive 941 isillustrated as storing operating system 944, other program modules 945,and program data 946. Note that these components can either be the sameas or different from operating system 934, other program modules 935 andprogram data 946. Operating system 944, other program modules 945 andprogram data 946 are given different numbers hereto illustrate that, ata minimum, they are different copies.

The computing device 900 may operate in a networked environment usinglogical connections to one or more remote computers. The computingdevice 900 is illustrated as being connected to the general networkconnection 961 through a network interface or adapter 960, which is, inturn, connected to the system bus 921. In a networked environment,program modules depicted relative to the computing device 900, orportions or peripherals thereof, may be stored in the memory of one ormore other computing devices that are communicatively coupled to thecomputing device 900 through the general network connection 961. It willbe appreciated that the network connections shown are exemplary andother means of establishing a communications link between computingdevices may be used.

Although described as a single physical device, the exemplary computingdevice 900 can be a virtual computing device, in which case thefunctionality of the above-described physical components, such as theCPU 920, the system memory 930, the network interface 960, and otherlike components can be provided by computer-executable instructions.Such computer-executable instructions can execute on a single physicalcomputing device, or can be distributed across multiple physicalcomputing devices, including being distributed across multiple physicalcomputing devices in a dynamic manner such that the specific, physicalcomputing devices hosting such computer-executable instructions candynamically change over time depending upon need and availability. Inthe situation where the exemplary computing device 900 is a virtualizeddevice, the underlying physical computing devices hosting such avirtualized computing device can, themselves, comprise physicalcomponents analogous to those described above, and operating in a likemanner. Furthermore, virtual computing devices can be utilized inmultiple layers with one virtual computing device executing within theconstruct of another virtual computing device. The term “computingdevice”, therefore, as utilized herein, means either a physicalcomputing device or a virtualized computing environment, including avirtual computing device, within which computer-executable instructionscan be executed in a manner consistent with their execution by aphysical computing device. Similarly, terms referring to physicalcomponents of the computing device, as utilized herein, mean eitherthose physical components or virtualizations thereof performing the sameor equivalent functions.

The descriptions above include, as a first example a set of one or morecomputing devices, in aggregate comprising: one or more processingunits; and one or more computer-readable media comprisingcomputer-executable instructions which, when executed by the one or moreprocessing units, cause the set of computing devices to: detect a firstactivity, performed by a first user, on a document created by a creatoruser; generate a first activity indicator corresponding to the firstactivity; identify a first set of users based on: changes to thedocument made by the first activity, a type of the first activity, thefirst user and the creator user; distribute the first activity indicatorto a first set of user workspaces, each user workspace corresponding toone or more users in the identified first set of users; receive arequest for activity indicators from a requesting user's workspace; andprovide the activity indicators from the requesting user's zone inresponse to the request.

A second example is the set of computing devices of the first example,wherein the computer-executable instructions for identifying the firstset of users comprise computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to identify the first set of users as comprising the first userand the creator user if the first activity is an open of the document bythe first user.

A third example is the set of computing devices of the first example,wherein the computer-executable instructions for identifying the firstset of users comprise computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to identify the first set of users as comprising the first user,the creator user, and currently authorized users who have previouslyopened the document if the first activity is an edit of the document bythe first user.

A fourth example is the set of computing devices of the third example,wherein the currently authorized users who have previously opened thedocument that are identified as part of the first set of users are onlythose that have previously opened the document within a predeterminedpast amount of time.

A fifth example is the set of computing devices of the third example,wherein the currently authorized users who have previously opened thedocument that are identified as part of the first set of users are onlythose that have previously edited the document as well.

A sixth example is the set of computing devices of the first example,wherein the computer-executable instructions for identifying the firstset of users comprise computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to identify the first set of users as comprising the first user,the creator user, and currently authorized users who have previouslyopened the document if the first activity is a comment on content of thedocument by the first user.

A seventh example is the set of computing devices of the sixth example,wherein the one or more computer-readable media comprise furthercomputer-executable instructions, which, when executed by the one ormore processing units, cause the set of computing devices to: identify,if the first activity is a comment reply, a replied-to user to whom thecomment reply is directed; generate a second activity indicatorcorresponding to the first activity and indicating that the firstactivity is the comment reply to the replied-to user; and distribute thesecond activity indicator to a replied-to user workspace correspondingto the replied-to user; the replied-to user workspace also having thefirst activity indicator distributed to it.

An eighth example is the set of computing devices of the first example,wherein the computer-executable instructions for identifying the firstset of users comprise computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to identify the first set of users as comprising the first user,the creator user, currently authorized users who have previously openedthe document and a mentioned user if the first activity is a directedmention that is directed to the mentioned user, within a context of thedocument, by the first user.

A ninth example is the set of computing devices of the eighth examplewherein the one or more computer-readable media comprise furthercomputer-executable instructions, which, when executed by the one ormore processing units, cause the set of computing devices to: generate asecond activity indicator corresponding to the first activity andindicating that the first activity is the directed mention that isdirected to the mentioned user; and distribute the second activityindicator to a mentioned user workspace corresponding to the mentioneduser; the mentioned user workspace also having the first activityindicator distributed to it.

A tenth example is the computing device of the first example, whereincomputer-executable instructions for identifying the first set of userscomprise computer-executable instructions, which, when executed by theone or more processing units, cause the set of computing devices toidentify the first set of users as comprising the creator user and ashared-with user if the first activity is a sharing of the document, bythe first user, with the shared-with user.

An eleventh example is the computing device of the first examples,wherein the computer-executable instructions for identifying the firstset of users comprise computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to identify the first set of users as comprising the creatoruser and a deauthorized user if the first activity is a change, by thefirst user, to access permissions associated with the document, revokingthe deauthorized user's permission to access the document.

A twelfth example is the computing device of the first example, whereinthe computer-executable instructions for identifying the first set ofusers comprise computer-executable instructions, which, when executed bythe one or more processing units, cause the set of computing devices toidentify the first set of users as comprising users socially directlyconnected to at least one of the first user or the creator user asidentified in a pre-generated social graph.

A thirteenth example is the computing device of the first example,wherein the one or more computer-readable media comprise furthercomputer-executable instructions, which, when executed by the one ormore processing units, cause the set of computing devices to: separatelydetect a receipt of the first activity indicator at a second userworkspace, corresponding to a second user, the second user workspacebeing part of the first set of user workspaces to which the firstactivity indicator was distributed; identify a second set of userscomprising users socially directly connected to the second user asidentified in a pre-generated social graph; and re-distribute the firstactivity indicator to a second set of user workspaces, each userworkspace corresponding to one or more users in the identified secondset of users.

A fourteenth example is a method of proactively distributing documentactivity indicators, the method comprising: detecting a first activity,performed by a first user, on a document created by a creator user;generating a first activity indicator corresponding to the firstactivity; identifying a first set of users based on: changes to thedocument made by the first activity, a type of the first activity, thefirst user and the creator user; distributing the first activityindicator to a first set of user workspaces, each user workspacecorresponding to one or more users in the identified first set of users;receiving a request for activity indicators from a requesting user'sworkspace; and providing the activity indicators from the requestinguser's zone in response to the request

A fifteenth example is the method of the fourteenth example, whereinwherein the identifying the first set of users comprises identifying thefirst set of users as comprising the first user, the creator user, andcurrently authorized users who have previously opened the document ifthe first activity is either an edit of the document by the first useror a comment on content of the document by the first user.

A sixteenth example is the method of the fifteenth example, whereinfurther comprising: identifying, if the first activity is a commentreply, a replied-to user to whom the comment reply is directed;generating a second activity indicator corresponding to the firstactivity and indicating that the first activity is the comment reply tothe replied-to user; and distributing the second activity indicator to areplied-to user workspace corresponding to the replied-to user; thereplied-to user workspace also having the first activity indicatordistributed to it.

A seventeenth example is the method of the fourteenth example, whereinthe identifying the first set of users comprises identifying the firstset of users as comprising users socially directly connected to at leastone of the first user or the creator user as identified in apre-generated social graph.

An eighteenth example is the method of the fourteenth example, whereinseparately detecting a receipt of the first activity indicator at asecond user workspace, corresponding to a second user, the second userworkspace being part of the first set of user workspaces to which thefirst activity indicator was distributed; identifying a second set ofusers comprising users socially directly connected to the second user asidentified in a pre-generated social graph; and re-distributing thefirst activity indicator to a second set of user workspaces, each userworkspace corresponding to one or more users in the identified secondset of users.

A nineteenth example is a system comprising: a first server computingdevice comprising: one or more first server processing units; and one ormore first server computer-readable media comprising computer-executableinstructions which, when executed by the one or more first serverprocessing units, cause the first server computing device to: detect afirst activity, performed by a first user, on a document created by acreator user; generate a first activity indicator corresponding to thefirst activity; identify a first set of users based on: changes to thedocument made by the first activity, a type of the first activity, thefirst user and the creator user, the first set of users comprising asecond user; and distribute the first activity indicator to a first setof user workspaces, each user workspace corresponding to one or moreusers in the identified first set of users, the first set of userworkspaces comprising a second user workspace corresponding to thesecond user; and a client computing device comprising: a display device;one or more client processing units; and one or more clientcomputer-readable media comprising computer-executable instructionswhich, when executed by the one or more client processing units, causethe client computing device to: obtain, from the second user workspace,the first activity indicator; and generate, on the display device, auser interface visually presenting recent document activity to thesecond user based at least in part on activity indicators obtained fromthe second user workspace, the recent document activity comprising thefirst activity performed by the first user.

A twentieth example is the system of the nineteenth example, furthercomprising a second server computing device comprising: one or moresecond server processing units; and one or more second servercomputer-readable media comprising computer-executable instructionswhich, when executed by the one or more second server processing units,cause the second server computing device to: detect a receipt of thefirst activity indicator at the second user workspace; identify a secondset of users comprising users socially directly connected to the seconduser as identified in a pre-generated social graph; and re-distributethe first activity indicator to a second set of user workspaces, eachuser workspace corresponding to one or more users in the identifiedsecond set of users.

As can be seen from the above descriptions, mechanisms for proactivitydistributing document activity indicators, including in a staged manner,have been presented. In view of the many possible variations of thesubject matter described herein, we claim as our invention all suchembodiments as may come within the scope of the following claims andequivalents thereto.

1. A set of one or more computing devices, in aggregate comprising: oneor more processing units; and one or more computer-readable storagemedia comprising computer-executable instructions which, when executedby the one or more processing units, cause the set of computing devicesto: detect a first activity on a document; generate a first activityindicator corresponding to the first activity; distribute the firstactivity indicator to a first plurality of user workspaces; receive,subsequent to the distributing the first activity indicator to the firstplurality of user workspaces, a request for activity indicators that arein a first user workspace; and provide the activity indicators from thefirst user workspace in response to the request, the provided activityindicators including the first activity indicator.
 2. The set ofcomputing devices of claim 1, wherein the computer-readable storagemedia comprise further computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to select the first plurality of user workspaces based on thedetected first activity, wherein, if the first activity is an open ofthe document by a first user, then the first plurality of userworkspaces comprises a user workspace corresponding to the first userand a user workspace corresponding to a user who created the document.3. The set of computing devices of claim 1, wherein thecomputer-readable storage media comprise further computer-executableinstructions, which, when executed by the one or more processing units,cause the set of computing devices to select the first plurality of userworkspaces based on the detected first activity, wherein, if the firstactivity is an edit of the document by a first user, then the firstplurality of user workspaces comprises a user workspace corresponding tothe first user, a user workspace corresponding to a user who created thedocument, and one or more user workspaces corresponding to one or moreusers who have previously opened the document.
 4. The set of computingdevices of claim 3, wherein the users who have previously opened thedocument are only those that have previously opened the document withina predetermined past amount of time.
 5. The set of computing devices ofclaim 3, wherein the users who have previously opened the document areonly those that have previously edited the document as well.
 6. The setof computing devices of claim 1, wherein the computer-readable storagemedia comprise further computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to select the first plurality of user workspaces based on thedetected first activity, wherein, if the first activity is a comment oncontent of the document by a first user, then the first plurality ofuser workspaces comprises a user workspace corresponding to the firstuser, a user workspace corresponding to a user who created the document,and one or more user workspaces corresponding to one or more users whohave previously opened the document.
 7. The set of computing devices ofclaim 6, wherein the one or more computer-readable storage mediacomprise further computer-executable instructions, which, when executedby the one or more processing units, cause the set of computing devicesto: generate a second activity indicator corresponding to the firstactivity if the first activity is a comment reply to a second user; anddistribute the second activity indicator to a user workspacecorresponding to the second user; the user workspace corresponding tothe second user also having had the first activity indicator distributedto it.
 8. The set of computing devices of claim 1, wherein thecomputer-readable storage media comprise further computer-executableinstructions, which, when executed by the one or more processing units,cause the set of computing devices to select the first plurality of userworkspaces based on the detected first activity, wherein, if the firstactivity is a directed mention directed to a second user by a firstuser, then the first plurality of user workspaces comprises a userworkspace corresponding to the first user, a user workspacecorresponding to the second user, a user workspace corresponding to auser who created the document, and one or more user workspacescorresponding to one or more users who have previously opened thedocument.
 9. The set of computing devices of claim 8, wherein the one ormore computer-readable media comprise further computer-executableinstructions, which, when executed by the one or more processing units,cause the set of computing devices to: generate a second activityindicator corresponding to the first activity if the first activity isthe directed mention; and distribute the second activity indicator to auser workspace corresponding to the second user; the user workspacecorresponding to the second user also having the first activityindicator distributed to it.
 10. The set of computing devices of claim1, wherein the computer-readable storage media comprise furthercomputer-executable instructions, which, when executed by the one ormore processing units, cause the set of computing devices to select thefirst plurality of user workspaces based on the detected first activity,wherein, if the first activity is a sharing of the document with asecond user, then the first plurality of user workspaces comprises auser workspace corresponding to the second user and a user workspacecorresponding to a user who created the document.
 11. The set ofcomputing devices of claim 1, wherein the computer-readable storagemedia comprise further computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to select the first plurality of user workspaces based on thedetected first activity, wherein, if the first activity is a revoking ofa second user's permission to access the document, then the firstplurality of user workspaces comprises a user workspace corresponding tothe second user and a user workspace corresponding to a user who createdthe document.
 12. The set of computing devices of claim 1, wherein thecomputer-readable storage media comprise further computer-executableinstructions, which, when executed by the one or more processing units,cause the set of computing devices to select the first plurality of userworkspaces based on a pre-generated social graph.
 13. The set ofcomputing devices of claim 1, wherein the one or more computer-readablemedia comprise further computer-executable instructions, which, whenexecuted by the one or more processing units, cause the set of computingdevices to: separately detect a receipt of the first activity indicatorat a second user workspace that is part of the first plurality of userworkspaces to which the first activity indicator was distributed; andre-distribute the first activity indicator to a second plurality of userworkspaces differing from the first plurality of user workspaces, there-distributing being triggered by the separately detecting the receiptof the first activity indicator at the second user workspace.
 14. Amethod of proactively distributing document activity indicators, themethod comprising: detecting a first activity on a document; generatinga first activity indicator corresponding to the first activity;distributing the first activity indicator to a first plurality of userworkspaces; receiving, subsequent to the distributing the first activityindicator to the first plurality of user workspaces, a request foractivity indicators that are in a first user workspace; and providingthe activity indicators from the first user workspace in response to therequest, the provided activity indicators including the first activityindicator.
 15. The method of claim 14, further comprising selecting thefirst plurality of user workspaces based on the detected first activity,wherein, if the first activity is either an edit of the document by afirst user or a comment on content of the document by the first user,then the first plurality of user workspaces comprises a user workspacecorresponding to the first user, a user workspace corresponding to auser who created the document, and one or more user workspacescorresponding to one or more users who have previously opened thedocument.
 16. The method of claim 15, further comprising: generating asecond activity indicator corresponding to the first activity if thefirst activity is a comment reply to a second user; and distributing thesecond activity indicator to a user workspace corresponding to thesecond user; the user workspace corresponding to the second user alsohaving had the first activity indicator distributed to it.
 17. Themethod of claim 14, further comprising selecting the first plurality ofuser workspaces based on a pre-generated social graph.
 18. The method ofclaim 14, further comprising: separately detecting a receipt of thefirst activity indicator at a second user workspace that is part of thefirst plurality of user workspaces to which the first activity indicatorwas distributed; and re-distributing the first activity indicator to asecond plurality of user workspaces differing from the first pluralityof user workspaces, the re-distributing being triggered by theseparately detecting the receipt of the first activity indicator at thesecond user workspace.
 19. A system comprising: a first server computingdevice comprising: one or more first server processing units; and one ormore first server computer-readable storage media comprisingcomputer-executable instructions which, when executed by the one or morefirst server processing units, cause the first server computing deviceto: detect a first activity on a document; generate a first activityindicator corresponding to the first activity; and distribute the firstactivity indicator to a first plurality of user workspaces; and a clientcomputing device comprising: a display device; one or more clientprocessing units; and one or more client computer-readable storage mediacomprising computer-executable instructions which, when executed by theone or more client processing units, cause the client computing deviceto: obtain the first activity indicator from a first user workspace thatis one of the first plurality of user workspaces; and generate, on thedisplay device, a user interface visually presenting recent documentactivity based at least in part on activity indicators obtained from thefirst user workspace, the recent document activity comprising the firstactivity.
 20. The system of claim 19, further comprising a second servercomputing device comprising: one or more second server processing units;and one or more second server computer-readable storage media comprisingcomputer-executable instructions which, when executed by the one or moresecond server processing units, cause the second server computing deviceto: detect a receipt of the first activity indicator at a second userworkspace; and re-distribute the first activity indicator to a secondplurality of user workspaces differing from the first plurality of userworkspaces, the re-distributing being triggered by the detecting thereceipt of the first activity indicator at the second user workspace.